﻿using System.ComponentModel;

namespace S.Transplantation.Infrastructure
{
    public interface IBaseRepository<T>
    {
        bool Add(T t);

        bool Delete(int id);

        bool Update(T t);

        IQueryable<T> GetAll();

        #region 异步增删改查

        Task<bool> AddAsync(T t);

        Task<bool> DeleteAsync(int id);

        Task<bool> UpdateAsync(T t);

        Task<List<T>> GetAllAsync();

        #endregion 异步增删改查

        Task<int> AddRangeAsync(IEnumerable<T> t);

        Task<int> UpdateRangeAsync(IEnumerable<T> t);

        int RemoveRange(IEnumerable<T> t);
    }
}